
public class Test {
    public static int missingNumber(int[] nums) {
        int val = 0;
        for(int i = 0; i<nums.length;i++){
            val ^= nums[i];
            val ^= i;
        }
        val ^= nums.length;
        return val;
    }
    public static void main(String[] args) {
        int[] arr = new int[]{0,1,2,4,5,6};
        int ret = missingNumber(arr);
        System.out.println(ret);
    }

}
/*
int missingNumber(int* nums, int numsSize){
    int ret = 0;
    for(int i = 0;i<numsSize+1;i++)
    {
        ret^=i;
    }
    for(int i = 0;i<numsSize;i++)
    {
        ret^=nums[i];
    }
    return ret;
}


[3,0,1]
数组原来的数字应该式0-3
因此0^1^2^3^3^0^1

由于异或满足交换律
可以变成0^0^1^1^3^3^2
前面的都是0

所以变成0^2，答案是2

 */